package com.heima.service.impl;

import com.github.pagehelper.Page;
import com.github.pagehelper.PageHelper;
import com.heima.mapper.RegionMapper;
import com.heima.pojo.Region;
import com.heima.pojo.dto.RegionPageDto;
import com.heima.pojo.dto.Regiondto;
import com.heima.pojo.vo.RegionPageVo;
import com.heima.pojo.vo.RegionVo;
import com.heima.service.RegionService;
import org.springframework.beans.BeanUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;

import java.util.Optional;

@Service
public class RegionServiceImpl implements RegionService {

    @Autowired
    private RegionMapper regionMapper;

    /**
     * 分页查询地区
     * @param dto
     * @return
     */
    @Override
    public RegionPageVo pageQuery(RegionPageDto dto) {
        PageHelper.startPage(dto.getPageIndex(),dto.getPageSize());
        Page<RegionVo> page = regionMapper.pageQuery(dto);
        RegionPageVo vo = new RegionPageVo();
        vo.setPageIndex(dto.getPageIndex());
        vo.setPageSize(dto.getPageSize());
        vo.setTotalPage(page.getPages());
        vo.setTotalCount(page.getTotal());
        vo.setCurrentPageRecords(page);
        return vo;
    }

    /**
     * 新增地区
     * @param dto
     */
    @Override
    public void save(Regiondto dto){
        Long regionId = dto.getId();
        Optional<Long> optional = Optional.ofNullable(regionId);
        Region region = new Region();
        BeanUtils.copyProperties(dto,region);
        region.setName(dto.getRegionName());
        if (optional.isEmpty()){
            //没有regionId,新增
            regionMapper.add(region);
        }
        //有regionId 修改
        regionMapper.update(region);
    }

    /**
     * 删除区域
     * @param regionId
     */
    @Override
    public void delById(Long regionId) {
        regionMapper.delById(regionId);
    }
}
